C++ 函数式编程与 Lambda 表达式

📚 共计 30 章节
01
C++函数式编程概述
函数式编程思想 · C++中的函数式特性 · 与面向对象的对比
范式思想
02
Lambda表达式基础
语法结构 · 捕获列表 · 参数列表 · 返回类型 · 函数体
语法核心
03
捕获列表详解
值捕获 · 引用捕获 · 隐式捕获 · 混合捕获 · 捕获this指针
捕获细节
04
Lambda与STL算法
std::for_each · std::find_if · std::sort 中的Lambda应用
STL算法
05
Lambda与自定义函数对象
仿函数 · Lambda与仿函数的对比 · 何时选择Lambda
仿函数对比
06
Lambda的存储与传递
std::function · auto存储 · 作为参数传递
存储std::function
07
泛型Lambda
C++14泛型Lambda · auto参数 · 模板化Lambda
泛型C++14
08
Lambda与闭包
闭包的概念 · Lambda对象的生命周期 · 拷贝与移动
闭包生命周期
09
递归Lambda
std::function实现递归 · Y组合子简介
递归Y组合子
10
高阶函数
接受Lambda作为参数 · 返回Lambda的函数
高阶函数式
11
函数组合
管道操作 · compose函数 · 链式调用
组合管道
12
std::bind与std::function
参数绑定 · 占位符 · 与Lambda的对比
bind占位符
13
std::invoke与可调用对象
统一调用语法 · 成员函数指针
invoke可调用
14
函数式数据结构
不可变数据 · 持久化数据结构概念
不可变持久化
15
std::optional与错误处理
函数式错误处理 · Monad思想
optionalMonad
16
std::variant与访问者模式
std::visit · Lambda与variant结合
variant访问者
17
std::expected(C++23)
预期值 · 错误传播 · 函数式风格
C++23expected
18
范围库(Ranges)
视图 · 适配器 · 管道操作符 · 延迟求值
Ranges视图
19
std::views::filter与transform
数据过滤与转换 · Lambda配合
filtertransform
20
std::views::zip与enumerate
多范围操作 · 索引遍历
zipenumerate
21
惰性求值与生成器
无限序列 · std::views::iota · 自定义生成器
惰性生成器
22
函数式并发
std::async · std::future · Lambda与异步任务
并发async
23
并行算法
std::execution::par · Lambda在并行中的应用
并行执行策略
24
纯函数与副作用
纯函数定义 · 副作用管理 · constexpr函数
纯函数constexpr
25
柯里化与部分应用
手动实现柯里化 · std::bind与柯里化
柯里化部分应用
26
函子与Monad概念
C++中的函子模式 · Monad的实用价值
函子Monad
27
模式匹配与访问者
std::visit模式 · Lambda重载技巧
模式匹配重载
28
编译期函数式编程
constexpr Lambda · 模板元编程与函数式
编译期constexpr
29
性能考量
Lambda内联 · 捕获开销 · 与函数指针对比
性能内联
30
实战案例
使用函数式风格实现一个数据处理管道
实战管道